<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>UVSOCK Messaging</title>
<title>Using the µVision Socket Interface: UVSOCK Messaging</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="drv.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="drv.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="keilarm.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">Using the µVision Socket Interface
   &#160;<span id="projectnumber">Application Note 198</span>
   </div>
   <div id="projectbrief">Control and monitor µVision via the built-in TCP/IP interface</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
      <li><a href="modules.html"><span>Reference</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('uvsock_messaging.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">UVSOCK Messaging </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><b>UVSOCK</b> uses messages to establish the communication between the <b>Client</b> and <b>uVision</b>. Messages are sent and received back-to-back on the socket interface. Usually, the <b>Client</b> triggers the communication cycle. As such we can define the following message types:</p>
<ul>
<li><a class="el" href="uvsock_messaging.html#spec_req_resp_msg">Request/Response Message</a> - triggered by the <b>Client</b> expecting a response from <b>uVision</b> </li>
<li><a class="el" href="uvsock_messaging.html#spec_async_msgs">Asynchronous Message</a> - sent at any time by <b>uVision</b> to the <b>Client</b> and not in response to a request</li>
</ul>
<p>The general form of the message is explained in <a class="el" href="uvsock_messaging.html#spec_General">General Message Format</a>. The general form of the status code messages is explained <a class="el" href="uvsock_messaging.html#uvsc_status_codes">Status Codes</a>. <a class="el" href="uvsock_data_types.html">UVSOCK Data Types</a> are designed for easy implementation.</p>
<h1><a class="anchor" id="spec_General"></a>
General Message Format</h1>
<p>A variable length message transfers data between the <b>Client</b> and <b>uVision</b>. Each message consists of the:</p>
<ul>
<li>Header (32-byte long), describing the message payload. For <b>uVision ==&gt; Client</b> messages, the header contains timing information for the target.</li>
<li>Payload itself, which is variable in format and length, dependent on the information in the header.</li>
</ul>
<p>The following general rules apply while working with <b>UVSOCK:</b> </p>
<ul>
<li>Multiple TCP connections are possible simultaneously and get defined with <b>#define</b> <a class="el" href="group__usvc__defs.html#ga35297034e80e69c6cbd24351e30f1008">UVSC_MAX_CLIENTS</a>.</li>
<li><em><b>Reserved</b> data</em> fields in structures must be written as <b>0</b> and <b>ignored</b> when reading.</li>
<li>Non-relevant data fields in requests must be written as <b>0</b>.</li>
</ul>
<p><a class="anchor" id="UV_MESSAGE"></a> <b>UV_MESSAGE</b> describes the general message format</p>
<table class="doxtable">
<tr>
<th align="left">Data </th><th align="left">Type </th><th align="left">Width (Bytes) </th><th align="left">Description  </th></tr>
<tr>
<td align="left">Header </td><td align="left"><a class="el" href="uvsock_messaging.html#UV_HEADER">UV_HEADER</a> </td><td align="left">32 </td><td align="left">Header with the command </td></tr>
<tr>
<td align="left">Data </td><td align="left">various </td><td align="left">SOCK_NDATA (32768) </td><td align="left">Payload with data depending on the command </td></tr>
</table>
<p><a class="anchor" id="UV_HEADER"></a> <b>UV_HEADER</b> describes the message header format</p>
<table class="doxtable">
<tr>
<th align="left">Data </th><th align="left">Type </th><th align="left">Width (Bytes) </th><th align="left">Description  </th></tr>
<tr>
<td align="left">Total Length </td><td align="left">unsigned integer </td><td align="left">4 (32 bits) </td><td align="left">Total packet length in bytes </td></tr>
<tr>
<td align="left">Command </td><td align="left">unsigned integer </td><td align="left">4 (32 bits) </td><td align="left">Command code; (listed in <a class="el" href="group__operation__codes.html#ga99cef9125743ebfba84222416cdeb368">UV_OPERATION</a>) </td></tr>
<tr>
<td align="left">Command Length </td><td align="left">unsigned integer </td><td align="left">4 (32 bits) </td><td align="left">Length of command code dependent data </td></tr>
<tr>
<td align="left">Cycle Count </td><td align="left">unsigned integer </td><td align="left">8 (64 bits) </td><td align="left">Number of MCU cycles since program execution started (from <b>uVision ==&gt; Client</b> only) </td></tr>
<tr>
<td align="left">Timestamp </td><td align="left">floating point </td><td align="left">8 (64 bits) </td><td align="left">Time in seconds since program execution started (from <b>uVision ==&gt; Client</b> only) </td></tr>
<tr>
<td align="left"><em>Reserved</em> </td><td align="left"><em>Reserved</em> </td><td align="left">4 (32 bits) </td><td align="left"><em>Reserved</em>. Send <b>0</b>. </td></tr>
</table>
<h1><a class="anchor" id="spec_req_resp_msg"></a>
Request/Response Message</h1>
<p>This section describes messages that can be sent from the <b>Client</b> to <b>uVision</b>. Each message from the <b>Client</b> is replayed by a response message from <b>uVision</b>.</p>
<p>Several messages have the same format, except for the command code contained in the request header. The payload of the response message contains the:</p>
<ul>
<li>Request command, and</li>
<li>Either a success indication (with variable response data),</li>
<li>Or an error indication, with an error string.</li>
</ul>
<p>Any reserved portion of a message should be sent as zero (<b>0</b>).</p>
<p><a class="anchor" id="UV_CMD_RESPONSE"></a><b>UV_CMD_RESPONSE</b> describes the header and payload of the request/response message</p>
<table class="doxtable">
<tr>
<th align="left">Data </th><th align="left">Type </th><th align="left">Width (Bytes) </th><th align="left">Description  </th></tr>
<tr>
<td align="left">Header </td><td align="left"><a class="el" href="uvsock_messaging.html#UV_HEADER">UV_HEADER</a> </td><td align="left">32 </td><td align="left">Header with <em><b>UV_CMD_RESPONSE</b> command</em> code </td></tr>
<tr>
<td align="left">Command Executed </td><td align="left">unsigned integer </td><td align="left">4 (32 bits) </td><td align="left">Command to which this is a response (see table <a class="el" href="uvsock_messaging.html#uvsock_command_set">UVSOCK Command Set</a>) </td></tr>
<tr>
<td align="left">Status </td><td align="left">unsigned integer </td><td align="left">4 (32 bits) </td><td align="left"><a class="el" href="uvsock_messaging.html#uvsc_status_codes">Status Codes</a> indicating if the executed command was successful or not </td></tr>
<tr>
<td align="left">Response </td><td align="left">various </td><td align="left">&lt;= SOCK_NDATA-8 </td><td align="left">Possible data returned in response to the executed command </td></tr>
</table>
<p><a class="anchor" id="uvsock_command_set"></a>All command codes are listed in <a class="el" href="group__operation__codes.html#ga99cef9125743ebfba84222416cdeb368">UV_OPERATION</a>.</p>
<p>The following table lists the command set and the message ordering:</p>
<table  class="cmtable" id="UVSOCK_CMDs" summary="UVSOCK Command Set">
<tr>
<th colspan="3" id="uvsock_command_set">UVSOCK Command Set  </th></tr>
<tr>
<th style="white-space:nowrap;">Request (Client ==&gt; uVision)  </th><th style="white-space:nowrap;">Expected Response (uVision ==&gt; Client)  </th><th>Description   </th></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a33fe952a3aead8f52757be557deef186">UV_GEN_GET_VERSION</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_GEN_GET_VERSION]  </td><td>Retrieve the version of the <b>UV Socket</b> interface   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a2a131b8e5c2f5b29acc659341b248442">UV_GEN_UI_UNLOCK</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_GEN_UI_UNLOCK]  </td><td>Enable message boxes / user input to <b>uVision</b>   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368aa7935b73846076d92d8ccf1a42ca8fac">UV_GEN_UI_LOCK</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_GEN_UI_LOCK]  </td><td>Disable message boxes / user input to <b>uVision</b>   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a340b6b02e1e628137e352fa1dcb2e0ba">UV_GEN_HIDE</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_GEN_HIDE]  </td><td>Completely hide the <b>uVision</b> window   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368ac5427bcb1b02241131d4fc023222a51c">UV_GEN_SHOW</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_GEN_SHOW]  </td><td>Show the <b>uVision</b> window   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a1e13c5b4c0433de7ac79bf0e8e85d96d">UV_GEN_RESTORE</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_GEN_RESTORE]  </td><td>Restore the <b>uVision</b> window   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a0d58355e76656a719e45313261a8d8ba">UV_GEN_MINIMIZE</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_GEN_MINIMIZE]  </td><td>Minimise the <b>uVision</b> window   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a33e19f77dcd49b51fa60768cc65c7e4b">UV_GEN_MAXIMIZE</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_GEN_MAXIMIZE]  </td><td>Maximise the <b>uVision</b> window   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368af934fc5b2e078b789b8e6198706a53e5">UV_GEN_EXIT</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_GEN_EXIT]  </td><td>Close <b>uVision</b>   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a8ca040f4a1ea4d6c22f5fe5dc546de7e">UV_GEN_GET_EXTVERSION</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_GEN_GET_EXTVERSION]  </td><td>Get extended version information, including the <b>uVision</b> and <b>UVSOCK</b> versions (in ASCII)   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368aedfffeed72c9e49bc68a2a34e210032f">UV_PRJ_LOAD</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_LOAD]  </td><td>Open a project   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368afffdb0fc204a53c4a07a0358f9a58d74">UV_PRJ_CLOSE</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_CLOSE]  </td><td>Close a project   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a01d7867d1620c7ee24d9226ad42e9ed6">UV_PRJ_ADD_GROUP</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_ADD_GROUP]  </td><td>Add a group to a project   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368adb2bab5cd051f963ef25f4193ba64986">UV_PRJ_DEL_GROUP</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_DEL_GROUP]  </td><td>Remove a group from a project   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a70cdeb9108b8886f089982eaf6c074c0">UV_PRJ_ADD_FILE</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_ADD_FILE]  </td><td>Add a file to a project group   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368abf3449d65cddf931ea0ef53360e776fa">UV_PRJ_DEL_FILE</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_DEL_FILE]  </td><td>Remove a file from a project group   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a5ef213bfdb2c6abdc5fd604cb06316e7">UV_PRJ_BUILD</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_BUILD] <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a5ab783fb4e2468a819301af06b188b19">UV_PRJ_BUILD_OUTPUT</a> <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a5926c1d373fdb4efd1344692f119089d">UV_PRJ_BUILD_COMPLETE</a> <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368afe85939aebdf8314d06ad90707c9b8bc">UV_PRJ_BUILD_CANCEL</a>  </td><td>Build the currently active project   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368ab6742feb96a4c1ff34e3f304d07565c6">UV_PRJ_REBUILD</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_REBUILD] <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a5ab783fb4e2468a819301af06b188b19">UV_PRJ_BUILD_OUTPUT</a> <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a5926c1d373fdb4efd1344692f119089d">UV_PRJ_BUILD_COMPLETE</a> <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368afe85939aebdf8314d06ad90707c9b8bc">UV_PRJ_BUILD_CANCEL</a>  </td><td>Clean and build the currently active project   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a08cb72025d4cf0cda1bda03d2eee898f">UV_PRJ_CLEAN</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_CLEAN]  </td><td>Clean the currently active project   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368afe85939aebdf8314d06ad90707c9b8bc">UV_PRJ_BUILD_CANCEL</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_BUILD_CANCEL]  </td><td>Stop a build that is currently in operation   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a01ea64d88334e15554111aadd792aa68">UV_PRJ_FLASH_DOWNLOAD</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_FLASH_DOWNLOAD] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_PRJ_FLASH_DOWNLOAD]  </td><td>Downloads the current project executable to target Flash   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a37292d447244a35c41d7135fbc378fe1">UV_PRJ_SET_TARGET</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a37292d447244a35c41d7135fbc378fe1">UV_PRJ_SET_TARGET</a>]  </td><td>Set the project debug mode to simulator or target   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a50cf4167f6b34c1b5952770daaeae46f">UV_PRJ_GET_OPTITEM</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_GET_OPTITEM]  </td><td>Get a file or project group option (such as preprocessor defines)   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368afc6e8c6d182fef65e9a97d1832a4a850">UV_PRJ_SET_OPTITEM</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_SET_OPTITEM]  </td><td>Set a file or project group option (such as preprocessor defines)   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368ae39e0090e7ab57869a79d20a059a0ff0">UV_PRJ_ENUM_GROUPS</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_ENUM_GROUPS] <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a66c0746916c7d520df038b17a79fb319">UV_PRJ_ENUM_GROUPS_START</a> <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368ab68e2b932cacf844b00d2ec6f8569eec">UV_PRJ_ENUM_GROUPS_ENU</a> (Group 1) <br/>
... <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368ab68e2b932cacf844b00d2ec6f8569eec">UV_PRJ_ENUM_GROUPS_ENU</a> (Group n) <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368acb70b346d2df33f3892198f78b26e224">UV_PRJ_ENUM_GROUPS_END</a>  </td><td>Enumerate the project groups present in a project   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a9c69ea002e41a5f47c26a5ee69ee08e3">UV_PRJ_ENUM_FILES</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_ENUM_FILES] <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a87889f7815e7966362ec6b2202c1e4f9">UV_PRJ_ENUM_FILES_START</a> <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a43aedb53d8188595b25fcee9a14b5bc9">UV_PRJ_ENUM_FILES_ENU</a> (File 1) <br/>
... <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a43aedb53d8188595b25fcee9a14b5bc9">UV_PRJ_ENUM_FILES_ENU</a> (File n) <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a9df052b925fab704e07cd0d60539731e">UV_PRJ_ENUM_FILES_END</a>  </td><td>Enumerate the files present in a project group in the project   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a7ce5b0c3547740b60db8d9e1b6ae8a85">UV_PRJ_CMD_PROGRESS</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_CMD_PROGRESS]  </td><td>Gets information on the progress of a FLASH download   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368aa7759f618de34ae5c8d4da1161f2fb30">UV_PRJ_ACTIVE_FILES</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_PRJ_ACTIVE_FILES]  </td><td>Gets the number of active files. This is the total number of files that will be built if a <a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368ab6742feb96a4c1ff34e3f304d07565c6">UV_PRJ_REBUILD</a> command was issued   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a5a7714ee64262978b9be6d3404cc5958">UV_DBG_ENTER</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_ENTER] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_ENTER]  </td><td>Start the debugger   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a33985645dd47599ee448bb6e26543484">UV_DBG_EXIT</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_EXIT] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_EXIT]  </td><td>Stop the debugger   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368aa74911091153121ba43d315242b4cd97">UV_DBG_START_EXECUTION</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_START_EXECUTION] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_START_EXECUTION]  </td><td>Start execution of the target   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a4fe58fe2a8b9211e23ce13dbfb7c8a74">UV_DBG_STOP_EXECUTION</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_STOP_EXECUTION] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_STOP_EXECUTION]  </td><td>Stop execution of the target   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a2f6323cf3cbc6eee08bc02ec1834bd26">UV_DBG_STATUS</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_STATUS]  </td><td>Check to see if the debugger is executing   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368af5146b6d19cc098e3500b7d45eb8ed5d">UV_DBG_RESET</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_RESET] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_RESET]  </td><td>Reset the target / simulator   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a7ced28bf26804f88d8b83bd104f6f3fa">UV_DBG_STEP_HLL</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_STEP_HLL] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_START_EXECUTION] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_STOP_EXECUTION]  </td><td>Step one high level code line   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368ac038b3d1fe67a750e704d1b741f487ee">UV_DBG_STEP_INTO</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_STEP_INTO] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_START_EXECUTION] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_STOP_EXECUTION]  </td><td>Step one processor instruction   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368abd8dd4fda941ef1a838a5eee8b62b0ff">UV_DBG_STEP_INSTRUCTION</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_STEP_INSTRUCTION] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_START_EXECUTION] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_STOP_EXECUTION]  </td><td>Step into the current function   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368aed8089df95a591cb2552c4cfb004b7e1">UV_DBG_STEP_OUT</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_STEP_OUT] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_START_EXECUTION] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_STOP_EXECUTION]  </td><td>Step out of the current function   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368ad458cf1743e81e7a00aec63bc4b0ebcd">UV_DBG_CALC_EXPRESSION</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_CALC_EXPRESSION]  </td><td>Calculate an expression   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a6117b2c5d860a272f81c07ce4a5de64b">UV_DBG_MEM_READ</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_MEM_READ]  </td><td>Read a chunk of memory   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a7f26e4bc0e9b0260d920326e5b853083">UV_DBG_MEM_WRITE</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_MEM_WRITE]  </td><td>Write a chunk of memory   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a2b2b934c52e914ecd659c099d8f2bb14">UV_DBG_TIME_INFO</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_TIME_INFO]  </td><td>Get cycle time information from the target   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368ac24390a6f65c81dffd61fb0907203854">UV_DBG_SET_CALLBACK</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_SET_CALLBACK] <br/>
<a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a541bc6edb4b52a4b31effd1930438585">UV_DBG_CALLBACK</a>  </td><td>Set a callback for a time in the future in MCU cycles   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a446ddf64b0c4240cbde54be30c57a831">UV_DBG_VTR_GET</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_VTR_GET]  </td><td>Get the value of a VTR   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368ae172e8cda4f4568dfd29c6e5d7eed688">UV_DBG_VTR_SET</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_VTR_SET]  </td><td>Set the value of a VTR   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a9c6d730a4865dc38f66b1432ddb4a415">UV_DBG_SERIAL_GET</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_SERIAL_GET]  </td><td>Get buffered serial output from the target   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a3754afac4232b121cd2d54bceea97b57">UV_DBG_SERIAL_PUT</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_SERIAL_PUT]  </td><td>Pass in serial terminal information to the target   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a6d0555af19c4be0c94c1e969377821dc">UV_DBG_VERIFY_CODE</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_VERIFY_CODE]  </td><td>Verify code in flash against built executable   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a3a8ddae327b5b9ee8364f68ffeef35ca">UV_DBG_CREATE_BP</a>  </td><td style="white-space:nowrap;"><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_CREATE_BP] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_CHANGE_BP (UV_STATUS_BP_CREATED)]  </td><td>Create a breakpoint   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a5d04e6a053c3b55d3a2ddc253f84c5ed">UV_DBG_ENUMERATE_BP</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_ENUMERATE_BP] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> (BP 1) <br/>
... <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> (BP n) <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a>  </td><td>Enumerate the currently defined breakpoints   </td></tr>
<tr>
<td><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a5cb7b99946461b644d56d88a72f5e742">UV_DBG_CHANGE_BP</a>  </td><td><a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> [UV_DBG_CHANGE_BP] <br/>
<a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> [UV_DBG_CHANGE_BP (x)]  </td><td>Enable, disable or delete a breakpoint   </td></tr>
</table>
<h1><a class="anchor" id="spec_async_msgs"></a>
Asynchronous Message</h1>
<p>Asynchronous messages are sent from <b>uVision ==&gt; Client</b>, but not in response to a request.</p>
<p>Most asynchronous messages have the same format as the response message (<a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a>), except for the command code <a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a>, and use the standard message with a sub-command code that is already defined for a <a class="el" href="uvsock_messaging.html#spec_req_resp_msg">Request/Response Message</a>. An example of this is <a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368aa74911091153121ba43d315242b4cd97">UV_DBG_START_EXECUTION</a>. The command can be sent as a request for <b>uVision</b> to start execution, or as an asynchronous messsage to indicate that <b>uVision</b> has started execution.</p>
<p>A few asynchronous messages have no corresponding <a class="el" href="uvsock_messaging.html#spec_req_resp_msg">Request/Response Message</a>, and the command is sent with the message header <a class="el" href="uvsock_messaging.html#UV_HEADER">UV_HEADER</a>. An example of this is <a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368af32af2fca9c311acbbca44cf70e59894">UV_RTA_MESSAGE</a>, which can be sent at any time by <b>uVision</b> and is never in response to a request.</p>
<p><a class="anchor" id="UV_ASYNC_MSG"></a> <b>UV_ASYNC_MSG (standard type)</b> describes the header and payload of the asynchronous message</p>
<table class="doxtable">
<tr>
<th align="left">Data </th><th align="left">Type </th><th align="left">Width (Bytes) </th><th align="left">Description  </th></tr>
<tr>
<td align="left">Header </td><td align="left"><a class="el" href="uvsock_messaging.html#UV_HEADER">UV_HEADER</a> </td><td align="left">32 </td><td align="left">Header with <em><b>UV_ASYNC_MSG</b> command</em> code </td></tr>
<tr>
<td align="left">Command Executed </td><td align="left">unsigned integer </td><td align="left">4 (32 bits) </td><td align="left">Command code that corresponds to the asynchronous operation </td></tr>
<tr>
<td align="left">Status </td><td align="left">unsigned integer </td><td align="left">4 (32 bits) </td><td align="left"><a class="el" href="uvsock_messaging.html#uvsc_status_codes">Status Codes</a> indicating if the executed command was successful or not </td></tr>
<tr>
<td align="left">Response </td><td align="left">various </td><td align="left">&lt;= SOCK_NDATA-8 </td><td align="left">Possible data returned in response to the executed command </td></tr>
</table>
<p>All message codes are listed in <a class="el" href="group__operation__codes.html#ga99cef9125743ebfba84222416cdeb368">UV_OPERATION</a>.</p>
<p>The following table lists the <b>UVSOCK</b> asynchronous messages: </p>
<table class="doxtable">
<tr>
<th align="left">Message (uVision ==&gt; Client) </th><th align="left">Description  </th></tr>
<tr>
<td align="left"><a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> </td><td align="left">Generic asyncronous response to a command from the client ( see table <a class="el" href="uvsock_messaging.html#uvsock_command_set">UVSOCK Command Set</a>) </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a5926c1d373fdb4efd1344692f119089d">UV_PRJ_BUILD_COMPLETE</a> </td><td align="left">A build has completed </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a5ab783fb4e2468a819301af06b188b19">UV_PRJ_BUILD_OUTPUT</a> </td><td align="left">A line of build output </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a541bc6edb4b52a4b31effd1930438585">UV_DBG_CALLBACK</a> </td><td align="left">The callback timeout has expired </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a41af1b7ab0aded48f71e500bc5a38304">UV_DBG_BP_ENUM_START</a> </td><td align="left">Start of enumeration (no breakpoint info) </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a475177d61d86f229f34a5318bb43bef0">UV_DBG_BP_ENUMERATED</a> </td><td align="left">Zero, one or more Responses with breakpoint info (<a class="el" href="structBKRSP.html">BKRSP</a>) </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a44efba32bf13cbe06b6fb329b63c45e3">UV_DBG_BP_ENUM_END</a> </td><td align="left">End of enumeration (no breakpoint info) </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a66c0746916c7d520df038b17a79fb319">UV_PRJ_ENUM_GROUPS_START</a> </td><td align="left">Start of group enumeration </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368ab68e2b932cacf844b00d2ec6f8569eec">UV_PRJ_ENUM_GROUPS_ENU</a> </td><td align="left">Zero, one or more Responses with group name (<a class="el" href="structSSTR.html">SSTR</a>) </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368acb70b346d2df33f3892198f78b26e224">UV_PRJ_ENUM_GROUPS_END</a> </td><td align="left">End of group enumeration </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a87889f7815e7966362ec6b2202c1e4f9">UV_PRJ_ENUM_FILES_START</a> </td><td align="left">Start of files enumeration </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a43aedb53d8188595b25fcee9a14b5bc9">UV_PRJ_ENUM_FILES_ENU</a> </td><td align="left">Zero, one or more Responses with file name (<a class="el" href="structSSTR.html">SSTR</a>) </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a9df052b925fab704e07cd0d60539731e">UV_PRJ_ENUM_FILES_END</a> </td><td align="left">End of files enumeration </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368af32af2fca9c311acbbca44cf70e59894">UV_RTA_MESSAGE</a> </td><td align="left">A <b>Real-Time Agent</b> protocol message encapsulated in a <b>UVSOCK</b> message </td></tr>
<tr>
<td align="left"><a class="el" href="group__operation__codes.html#gga99cef9125743ebfba84222416cdeb368a011b68b2a4de6b6354d2841a40f81054">UV_RTA_INCOMPATIBLE</a> </td><td align="left">Sent when the RTA version in target is incompatible with uVision </td></tr>
</table>
<h1><a class="anchor" id="uvsc_status_codes"></a>
Status Codes</h1>
<p>Status codes are returned in <a class="el" href="uvsock_messaging.html#UV_CMD_RESPONSE">UV_CMD_RESPONSE</a> and <a class="el" href="uvsock_messaging.html#UV_ASYNC_MSG">UV_ASYNC_MSG</a> messages from <b>uVision ==&gt; Client</b>. They represent the result of the operation and relate to the UVSOCK command code in the message.</p>
<p>In the case of <a class="el" href="group__status__codes.html#ggafd133b241db7cac0f1baaac6c492c5eea0f2b5ea10afea3d479455eb8e0136700">UV_STATUS_SUCCESS</a>, the <b>Response</b> data in the message will be formatted dependent on the Command Executed. The formats are detailed in the section corresponding to the command.</p>
<p>Other codes than <a class="el" href="group__status__codes.html#ggafd133b241db7cac0f1baaac6c492c5eea0f2b5ea10afea3d479455eb8e0136700">UV_STATUS_SUCCESS</a> identify an error. Then, the <b>Response</b> data in the message will be formatted as follows:</p>
<table class="doxtable">
<tr>
<th align="left">Data </th><th align="left">Type </th><th align="left">Width (Bytes) </th><th align="left">Description  </th></tr>
<tr>
<td align="left"><em>Reserved</em> </td><td align="left"><em>Reserved</em> </td><td align="left">4 (32 bits) </td><td align="left"><em>Reserved</em> </td></tr>
<tr>
<td align="left"><em>Reserved</em> </td><td align="left"><em>Reserved</em> </td><td align="left">4 (32 bits) </td><td align="left"><em>Reserved</em> </td></tr>
<tr>
<td align="left">Error String Length </td><td align="left">unsigned integer </td><td align="left">4 (32 bits) </td><td align="left">Length of error string (including terminator) in bytes (maximum length of (SOCK_NDATA - 20) bytes) </td></tr>
<tr>
<td align="left">Error String </td><td align="left">NULL terminated string </td><td align="left">Data Length </td><td align="left">Error description </td></tr>
</table>
<p>The enumeration <a class="el" href="group__status__codes.html#gafd133b241db7cac0f1baaac6c492c5ee">UV_STATUS</a> lists all codes.</p>
<dl class="section note"><dt>Note</dt><dd>Functions return the status codes listed in <a class="el" href="group__usvc__enums.html#gadadac39a0d05bddb1eb1240c1eeb1ecc">UVSC_STATUS</a>. </dd></dl>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="index.html">Introduction</a></li>
    <li class="footer">Generated on Mon Jul 2 2018 08:45:40 for Using the µVision Socket Interface by ARM Ltd. All rights reserved.
	<!--
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 
	-->
	</li>
  </ul>
</div>
</body>
</html>
